package br.com.fafica.biblioteca.livro.model;

import br.com.fafica.biblioteca.RepositorioException;
import br.com.fafica.biblioteca.funcionario.model.Funcionario;
import br.com.fafica.biblioteca.funcionario.model.FuncionarioJaCadastradoException;
import br.com.fafica.biblioteca.funcionario.model.FuncionarioNaoEncontradoException;
import br.com.fafica.biblioteca.funcionario.model.IRepositorioFuncionario;

public class CadastroLivro {
	
private IRepositorioLivro livros;
	
	public CadastroLivro(IRepositorioLivro repositorio){
		this.livros = repositorio;
	}
	
	
	public void cadastrar(Livro livro) throws LivroJaCadastradoException, RepositorioException{
		if (livro != null){
			if (!livro.existe(livro.getTitulo())){
				livros.inserir(livro);
			} else {
				throw new LivroJaCadastradoException(livro.getTitulo());
			}
		} else {
			throw new IllegalArgumentException();
		}
	}
	
	public Livro remover (String titulo) throws LivroNaoEncontradoException, RepositorioException{
		return livros.remover(titulo);
	}

	public void atualizar (Livro livro) throws LivroNaoEncontradoException, RepositorioException{
		livros.atualizar(livro);
	}

	public Livro procurar(String titulo) throws LivroNaoEncontradoException, RepositorioException{
		return livros.procurar(titulo);
	}

}
